Led Sign - Wide Letters
Put this code in you page where ever you want he LED sign to go. Also, you need to put these 2 gifs, on.gif and off.gif, in your internet directory. VERY IMPORTANT: No capital letters!, it won't
work
<SCRIPT LANGUAGE="JavaScript">
<!--
// set messages
var messages = new Array()
messages[0] = "MESSAGE #1"
messages[1] = "MESSAGE #2"
messages[2] = "MESSAGE #3"
messages[3] = "MESSAGE #4"
var pause = 1000
var space = 1
var height = 5
var width = 5
var letters = new letterArray()
var on = new Image(5, 5)
var off = new Image(5, 5)
// set image URLs
on.src = "on.gif"
off.src = "off.gif"
var imageNum = document.images.length
var boardWidth = 0
for (var i = 0; i < messages.length; ++i) {
var lengthWithNoSpaces = messages[i].split(" ").join("").length
var numberOfSpaces = messages[i].length - lengthWithNoSpaces
var currentBoardWidth = lengthWithNoSpaces * (width + space) - space + numberOfSpaces * space * 2
if (boardWidth < currentBoardWidth)
boardWidth = currentBoardWidth
}
var running = false
var timerID = null
function letterArray() {
this.a = new Array(height)
this.a[0] = " *** "
this.a[1] = "* *"
this.a[2] = "*****"
this.a[3] = "* *"
this.a[4] = "* *"
this.b = new Array(height)
this.b[0] = "**** "
this.b[1] = "* *"
this.b[2] = "**** "
this.b[3] = "* *"
this.b[4] = "**** "
this.c = new Array(height)
this.c[0] = " ****"
this.c[1] = "* "
this.c[2] = "* "
this.c[3] = "* "
this.c[4] = " ****"
this.d = new Array(height)
this.d[0] = "**** "
this.d[1] = "* *"
this.d[2] = "* *"
this.d[3] = "* *"
this.d[4] = "**** "
this.e = new Array(height)
this.e[0] = "***** "
this.e[1] = "* "
this.e[2] = "**** "
this.e[3] = "* "
this.e[4] = "*****"
this.f = new Array(height)
this.f[0] = "*****"
this.f[1] = "* "
this.f[2] = "**** "
this.f[3] = "* "
this.f[4] = "* "
this.g = new Array(height)
this.g[0] = " *** "
this.g[1] = "* "
this.g[2] = "* ***"
this.g[3] = "* * "
this.g[4] = " *** "
this.h = new Array(height)
this.h[0] = "* *"
this.h[1] = "* *"
this.h[2] = "*****"
this.h[3] = "* *"
this.h[4] = "* *"
this.i = new Array(height)
this.i[0] = "*****"
this.i[1] = " * "
this.i[2] = " * "
this.i[3] = " * "
this.i[4] = "*****"
this.j = new Array(height)
this.j[0] = " *"
this.j[1] = " *"
this.j[2] = " *"
this.j[3] = "* *"
this.j[4] = " ***"
this.k = new Array(height)
this.k[0] = "* *"
this.k[1] = "* * "
this.k[2] = "*** "
this.k[3] = "* * "
this.k[4] = "* *"
this.l = new Array(height)
this.l[0] = "* "
this.l[1] = "* "
this.l[2] = "* "
this.l[3] = "* "
this.l[4] = "*****"
this.m = new Array(height)
this.m[0] = "* *"
this.m[1] = "** **"
this.m[2] = "* * *"
this.m[3] = "* *"
this.m[4] = "* *"
this.n = new Array(height)
this.n[0] = "* *"
this.n[1] = "** *"
this.n[2] = "* * *"
this.n[3] = "* **"
this.n[4] = "* *"
this.o = new Array(height)
this.o[0] = " *** "
this.o[1] = "* *"
this.o[2] = "* *"
this.o[3] = "* *"
this.o[4] = " *** "
this.p = new Array(height)
this.p[0] = "**** "
this.p[1] = "* *"
this.p[2] = "**** "
this.p[3] = "* "
this.p[4] = "* "
this.q = new Array(height)
this.q[0] = "**** "
this.q[1] = "* * "
this.q[2] = "* ** "
this.q[3] = "* * "
this.q[4] = "*** *"
this.r = new Array(height)
this.r[0] = "**** "
this.r[1] = "* *"
this.r[2] = "**** "
this.r[3] = "* * "
this.r[4] = "* *"
this.s = new Array(height)
this.s[0] = " ****"
this.s[1] = "* "
this.s[2] = " *** "
this.s[3] = " *"
this.s[4] = "**** "
this.t = new Array(height)
this.t[0] = "*****"
this.t[1] = " * "
this.t[2] = " * "
this.t[3] = " * "
this.t[4] = " * "
this.u = new Array(height)
this.u[0] = "* *"
this.u[1] = "* *"
this.u[2] = "* *"
this.u[3] = "* *"
this.u[4] = " *** "
this.v = new Array(height)
this.v[0] = "* *"
this.v[1] = "* *"
this.v[2] = "* *"
this.v[3] = " * * "
this.v[4] = " * "
this.w = new Array(height)
this.w[0] = "* *"
this.w[1] = "* *"
this.w[2] = "* * *"
this.w[3] = "** **"
this.w[4] = "* *"
this.x = new Array(height)
this.x[0] = "* *"
this.x[1] = " * * "
this.x[2] = " * "
this.x[3] = " * * "
this.x[4] = "* *"
this.y = new Array(height)
this.y[0] = "* *"
this.y[1] = " * * "
this.y[2] = " * "
this.y[3] = " * "
this.y[4] = " * "
this.z = new Array(height)
this.z[0] = "*****"
this.z[1] = " *"
this.z[2] = " * "
this.z[3] = " * "
this.z[4] = "*****"
this['!'] = new Array(height)
this['!'][0] = " * "
this['!'][1] = " * "
this['!'][2] = " * "
this['!'][3] = " "
this['!'][4] = " * "
this[':'] = new Array(height)
this[':'][0] = " "
this[':'][1] = " * "
this[':'][2] = " "
this[':'][3] = " * "
this[':'][4] = " "
this['.'] = new Array(height)
this['.'][0] = " "
this['.'][1] = " "
this['.'][2] = " "
this['.'][3] = " "
this['.'][4] = " * "
this['='] = new Array(height)
this['='][0] = " "
this['='][1] = "****"
this['='][2] = " "
this['='][3] = "****"
this['='][4] = " "
this['+'] = new Array(height)
this['+'][0] = " "
this['+'][1] = " * "
this['+'][2] = " *** "
this['+'][3] = " * "
this['+'][4] = " "
this['-'] = new Array(height)
this['-'][0] = " "
this['-'][1] = " "
this['-'][2] = "****"
this['-'][3] = " "
this['-'][4] = " "
this['/'] = new Array(height)
this['/'][0] = " *"
this['/'][1] = " * "
this['/'][2] = " * "
this['/'][3] = " * "
this['/'][4] = "* "
this['\\'] = new Array(height)
this['\\'][0] = "* "
this['\\'][1] = " * "
this['\\'][2] = " * "
this['\\'][3] = " * "
this['\\'][4] = " *"
this['"'] = new Array(height)
this['"'][0] = " * * "
this['"'][1] = " * * "
this['"'][2] = " * * "
this['"'][3] = " "
this['"'][4] = " "
this["'"] = new Array(height)
this["'"][0] = " * "
this["'"][1] = " * "
this["'"][2] = " * "
this["'"][3] = " "
this["'"][4] = " "
this['('] = new Array(height)
this['('][0] = " *"
this['('][1] = " * "
this['('][2] = " * "
this['('][3] = " * "
this['('][4] = " *"
this[')'] = new Array(height)
this[')'][0] = "* "
this[')'][1] = " * "
this[')'][2] = " * "
this[')'][3] = " * "
this[')'][4] = "* "
this['*'] = new Array(height)
this['*'][0] = "* *"
this['*'][1] = " *** "
this['*'][2] = "*****"
this['*'][3] = " *** "
this['*'][4] = "* *"
this['?'] = new Array(height)
this['?'][0] = "**** "
this['?'][1] = " *"
this['?'][2] = " * "
this['?'][3] = " "
this['?'][4] = " * "
this['0'] = new Array(height)
this['0'][0] = " *** "
this['0'][1] = "* *"
this['0'][2] = "* * *"
this['0'][3] = "* *"
this['0'][4] = " *** "
this['1'] = new Array(height)
this['1'][0] = " * "
this['1'][1] = " ** "
this['1'][2] = " * "
this['1'][3] = " * "
this['1'][4] = " *** "
this['2'] = new Array(height)
this['2'][0] = "*** "
this['2'][1] = " *"
this['2'][2] = " **"
this['2'][3] = "* "
this['2'][4] = "****"
this['3'] = new Array(height)
this['3'][0] = "****"
this['3'][1] = " *"
this['3'][2] = "****"
this['3'][3] = " *"
this['3'][4] = "****"
this['4'] = new Array(height)
this['4'][0] = "* *"
this['4'][1] = "* *"
this['4'][2] = "****"
this['4'][3] = " *"
this['4'][4] = " *"
this['5'] = new Array(height)
this['5'][0] = "*****"
this['5'][1] = "* "
this['5'][2] = "**** "
this['5'][3] = " *"
this['5'][4] = "**** "
this['6'] = new Array(height)
this['6'][0] = "**** "
this['6'][1] = "* "
this['6'][2] = "****"
this['6'][3] = "* *"
this['6'][4] = "****"
this['7'] = new Array(height)
this['7'][0] = "****"
this['7'][1] = " *"
this['7'][2] = " * "
this['7'][3] = " * "
this['7'][4] = "* "
this['8'] = new Array(height)
this['8'][0] = "****"
this['8'][1] = "* *"
this['8'][2] = "****"
this['8'][3] = "* *"
this['8'][4] = "****"
this['9'] = new Array(height)
this['9'][0] = "****"
this['9'][1] = "* *"
this['9'][2] = "****"
this['9'][3] = " *"
this['9'][4] = "****"
}
function drawBlank() {
var gt = unescape("%3e")
document.write('<TABLE BORDER=2 CELLPADDING=8' + gt + '<TR' + gt + '<TD BGCOLOR ALIGN="center" VALIGN="center"' + gt)
for (var y = 0; y < height; ++y) {
for (var x = 0; x < boardWidth; ++x) {
document.write('<IMG SRC="' + off.src + '" HEIGHT=5 WIDTH=5' + gt)
}
document.write('<BR' + gt)
}
document.write('</TD' + gt + '</TR' + gt + '</TABLE' + gt)
}
function setLight(state, x, y) {
if (state)
document.images[computeIndex(x, y)].src = on.src
else
document.images[computeIndex(x, y)].src = off.src
}
function drawLetter(letter, startX) {
for (var x = 0; x < width; ++x) {
for (var y = 0; y < height; ++y) {
setLight(letters[letter][y].charAt(x) == "*", startX + x, y)
}
}
}
function drawSpace(startX) {
for (var x = 0; x < space; ++x) {
for (var y = 0; y < height; ++y) {
setLight(false, startX + x, y)
}
}
}
function computeIndex(x, y) {
return (y * boardWidth + x) + imageNum
}
function floodBoard(startX) {
for (var x = startX; x < boardWidth; ++x) {
for (var y = 0; y < height; ++y) {
setLight(false, x, y)
}
}
}
function drawMessage(num) {
var text = messages[num]
var i = 0
var j = 0
while (1) {
if (text.charAt(j) != " ") {
// draw current letter
drawLetter(text.charAt(j), i)
i += width
} else {
drawSpace(i)
i += space
}
if (j < text.length - 1) {
drawSpace(i)
i += space
} else
break
++j
}
floodBoard(i)
if (num < messages.length - 1)
val = ++num
else
val = 0
timerID = setTimeout("drawMessage(val)", pause)
}
function startSign() {
running = true
drawMessage(0)
}
function stopSign() {
if(running)
clearTimeout(timerID)
running = false
}
document.write('<CENTER><FORM>')
drawBlank()
document.write('<INPUT TYPE="button" VALUE="start" onClick="startSign()">')
document.write('<INPUT TYPE="button" VALUE="stop" onClick="stopSign(); floodBoard(0)">')
document.write('</FORM></CENTER>')
// -->
</SCRIPT>
To add more messages just add messages[4] = "FIFTH MESSAGE"
in the top of the script, just change the numbers appropriately. Don't forget to change the messages!
If you want to make the sign start when your page loads up instead of pressing the button, first delete this line at the end of the code
document.write('<INPUT TYPE="button" VALUE="start" onClick="startSign()">')
Now put this inside your body code.
<body onLoad="startSign()">
An example is:
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#FF0000" VLINK="#000080" ALINK="#000080" onLoad="startSign()">
or
<body onLoad="startSign()">